package com.tjetc._1package_class;

public class _5IntegerDetail {
    public static void main(String[] args) {

        /*
            IntegerCache.low: -128
            IntegerCache.high: 127
            public static Integer valueOf(int i) {
                if (i >= IntegerCache.low && i <= IntegerCache.high)
                    return IntegerCache.cache[i + (-IntegerCache.low)];
                return new Integer(i);
            }

            如果你的数值在-128 ~ 127 之间的数 就不会new对象 指向同一个地址

         */

        Integer a = Integer.valueOf(1);
        Integer b = Integer.valueOf(1);
        System.out.println(a == b); // true


        Integer c = 1000;
        Integer d = 1000;
        System.out.println(c == d); // false
        System.out.println(c.equals(d)); // true


        // 不管e的值为多少 最终比较的是值 不是地址
        Integer e = 1000;
        int f = 1000;
        System.out.println(e == f); // true


        Integer g = Integer.valueOf(100);
        int h = 100;
        System.out.println(g == h); // true
    }
}
